package org.zachary.creditbusiness.commodityandhouse.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.zachary.creditbusiness.commodityandhouse.entity.HouseOrder;
import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.sql.Timestamp;

@Mapper
public interface HouseOrderMapper extends BaseMapper<HouseOrder> {


    /**
     * 安全支付更新 - 只更新状态、支付时间和守约状态，确保不会修改deadline等其他字段
     * @param orderId 订单ID
     * @param status 支付状态
     * @param payDate 支付时间
     * @param promise 守约状态
     * @return 更新的记录数
     */
    @Update("UPDATE house_order SET status = #{status}, pay_date = #{payDate}, promise = #{promise} WHERE id = #{orderId}")
    int updatePaymentStatusOnly(@Param("orderId") Integer orderId,
                                @Param("status") Byte status,
                                @Param("payDate") Timestamp payDate,
                                @Param("promise") Byte promise);


    /**
     * 安全更新守约状态 - 只更新promise字段，确保不会修改deadline等其他字段
     * @param orderId 订单ID
     * @param promise 守约状态
     * @return 更新的记录数
     */
    @Update("UPDATE house_order SET promise = #{promise} WHERE id = #{orderId}")
    int updatePromiseStatusOnly(@Param("orderId") Integer orderId,
                                @Param("promise") Byte promise);

}
